﻿using System;
using System.Runtime.Serialization;

namespace NetBay.Core.BusinessEntities.Workflow
{
    [DataContract]
    public class WorkflowInstanceUser : ReturnObject
    {

        #region Properties

        /// <summary>
        /// Gets or sets the identifier.
        /// </summary>
        /// <value>The identifier.</value>
        [DataMember]
        public long Identifier { get; set; }

        /// <summary>
        /// Gets or sets the instance identifier.
        /// </summary>
        /// <value>The identifier.</value>
        [DataMember]
        public long InstanceId { get; set; }

        /// <summary>
        /// Gets or sets the group-user identifier.
        /// </summary>
        /// <value>The identifier.</value>
        [DataMember]
        public long UserGroupId { get; set; }

        /// <summary>
        /// Gets or sets the is deleted.
        /// </summary>
        /// <value>The is deleted.</value>
        [DataMember]
        public bool IsDeleted { get; set; }

        /// <summary>
        /// Gets or sets the last action id.
        /// </summary>
        /// <value>The last action id.</value>
        [DataMember]
        public long LastActionId { get; set; }

        /// <summary>
        /// Gets or sets the is ended.
        /// </summary>
        /// <value>The is ended.</value>
        [DataMember]
        public bool IsEnded { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether this instance is read.
        /// </summary>
        /// <value>
        ///   <c>true</c> if this instance is read; otherwise, <c>false</c>.
        /// </value>
        [DataMember]
        public bool IsRead { get; set; }

        /// <summary>
        /// Gets or sets the name of the group.
        /// </summary>
        /// <value>
        /// The name of the group.
        /// </value>
        [DataMember]
        public string GroupName { get; set; }

        #endregion

        #region Constructors

        /// <summary>
        /// Initializes a new instance of the <see cref="WorkflowInstanceUser" /> class.
        /// </summary>
        public WorkflowInstanceUser()
        :base()
        {
        }

        /// <summary>
        /// Only for error
        /// </summary>
        /// <param name="ErrorMessage"></param>
        public WorkflowInstanceUser(string errorMessage, Exception applicationException = null)
        : base(errorMessage, applicationException)
        {
        }

        #endregion

    }
}
